MAYBE THIS CODE BE USED ON THE FUTURE, TO PERFORM AN AUTOMATIC SOURCE-TARGET ADAPTATION BASED ON THE FOLLOWING THREE VARIABLES.
FOR WHILE, LET'S IT HERE INTO THIS TEXT FILE




// ----------------------------------------------------------------------------------------------------------------------------------------------
	"lw $a1, 0x0224($t8)\n\t"			// Load source parameter value from Source_Mode
	"lw $a2, 0x0204($t8)\n\t"			// Load target parameter value from Target_Mode
	"lw $a3, 0x0228($v0)\n\t"			// Load source parameter value from Source_Field		   
// ----------------------------------------------------------------------------------------------------------------------------------------------
	"li $t7, 0\n\t"




// ----------------------------------------------------------------------------------------------------------------------------------------------
// DW' = DW
// .--------.-------.---------------.---------------------------------------.-------.
// | Name   | Pos.  | Format        | Contents                              | Mask  |
// |        |       |               |                                       |       |
// |--------+-------+---------------+---------------------------------------+-------+
// | DW     | 43:32 | int 0:12:0    | display area width - 1 (VCK units)    | 0xFFF |
// '--------^-------^---------------^---------------------------------------^-------^
	"dsrl32 $a0, $t2, 0\n\t"
	"andi $a0, $a0, 0xFFF\n\t"
// START - THE PLACE ON ASM CODE WHERE YOU CHANGE THE SOURCE VALUE TO SOMEONE ELSE
	"addiu $k0, $k0, 0x02\n\t"			//If Target Mode is NTSC, multiply by 4
	"beq $a2, $k0, 1f\n\t"
	"dsll $a0, $a0, 2\n\t"
	"addiu $k0, $k0, 0x03\n\t"			//If Target Mode is PAL, multiply by 4
	"beq $a2, $k0, 1f\n\t"
	"dsll $a0, $a0, 2\n\t"
	"addiu $k0, $k0, 0x1A\n\t"			//If Target Mode is VGA-640@60, multiply by 2
	"beq $a2, $k0, 1f\n\t"
	"dsll $a0, $a0, 1\n\t"
	"dsll $a0, $a0, 0\n\t"				//for other Target Mode, do not multiply
	"1:\n\t"
	"addiu $k0, $k0, 0x02\n\t"			//If Source Mode is NTSC, divide by 4
	"beq $a1, $k0, 1f\n\t"
	"dsrl $a0, $a0, 2\n\t"
	"addiu $k0, $k0, 0x03\n\t"			//If Source Mode is PAL, divide by 4
	"beq $a1, $k0, 1f\n\t"
	"dsrl $a0, $a0, 2\n\t"
	"addiu $k0, $k0, 0x1A\n\t"			//If Target Mode is VGA-640@60, divide by 4
	"beq $a1, $k0, 1f\n\t"
	"dsrl $a0, $a0, 2\n\t"
	"nop\n\t"							//for other Source Mode, do not divide
	"1:\n\t"
// END   - THE PLACE ON ASM CODE WHERE YOU CHANGE THE SOURCE VALUE TO SOMEONE ELSE
	"andi $a0, $a0, 0xFFF\n\t"			// This masking ensures that field limits are respected after changing the source value
	"dsll32 $a0, $a0, 0\n\t"			// Align it for DISPLAYx register
// ----------------------------------------------------------------------------------------------------------------------------------------------
	"or $t7, $t7, $a0\n\t"				//DISPLAYx' = (DISPLAYx') OR (DW')
// ----------------------------------------------------------------------------------------------------------------------------------------------
// MAGH' = MAGH
// .--------.-------.---------------.---------------------------------------.-------.
// | Name   | Pos.  | Format        | Contents                              | Mask  |
// |        |       |               |                                       |       |
// |--------+-------+---------------+---------------------------------------+-------+
// | MAGH   | 26:23 | int 0: 4:0    | magnification in horizontal direction | 0xF   |
// '--------^-------^---------------^---------------------------------------^-------^
	"dsrl $a0, $t2, 23\n\t"
	"andi $a0, $a0, 0xF\n\t"
// START - THE PLACE ON ASM CODE WHERE YOU CHANGE THE SOURCE VALUE TO SOMEONE ELSE
	"addiu $k0, $k0, 0x02\n\t"			//If Target Mode is NTSC, multiply by 4
	"beq $a2, $k0, 1f\n\t"
	"dsll $a0, $a0, 2\n\t"
	"addiu $k0, $k0, 0x03\n\t"			//If Target Mode is PAL, multiply by 4
	"beq $a2, $k0, 1f\n\t"
	"dsll $a0, $a0, 2\n\t"
	"addiu $k0, $k0, 0x1A\n\t"			//If Target Mode is VGA-640@60, multiply by 2
	"beq $a2, $k0, 1f\n\t"
	"dsll $a0, $a0, 1\n\t"
	"dsll $a0, $a0, 0\n\t"				//for other Target Mode, do not multiply
	"1:\n\t"
	"addiu $k0, $k0, 0x02\n\t"			//If Source Mode is NTSC, divide by 4
	"beq $a1, $k0, 1f\n\t"
	"dsrl $a0, $a0, 2\n\t"
	"addiu $k0, $k0, 0x03\n\t"			//If Source Mode is PAL, divide by 4
	"beq $a1, $k0, 1f\n\t"
	"dsrl $a0, $a0, 2\n\t"
	"addiu $k0, $k0, 0x1A\n\t"			//If Target Mode is VGA-640@60, divide by 4
	"beq $a1, $k0, 1f\n\t"
	"dsrl $a0, $a0, 2\n\t"
	"nop\n\t"							//for other Source Mode, do not divide
	"1:\n\t"
// END   - THE PLACE ON ASM CODE WHERE YOU CHANGE THE SOURCE VALUE TO SOMEONE ELSE
	"andi $a0, $a0, 0xF\n\t"			// This masking ensures that field limits are respected after changing the source value
	"dsll $a0, $a0, 23\n\t"				// Align it for DISPLAYx register
// ----------------------------------------------------------------------------------------------------------------------------------------------
	"or $t7, $t7, $a0\n\t"				//DISPLAYx' = (DISPLAYx') OR (MAGH')
// ----------------------------------------------------------------------------------------------------------------------------------------------
// DX' = DX
// .--------.-------.---------------.---------------------------------------.-------.
// | Name   | Pos.  | Format        | Contents                              | Mask  |
// |        |       |               |                                       |       |
// |--------+-------+---------------+---------------------------------------+-------+
// | DX     | 11:0  | int 0:12:0    | x pos in display area (VCK units)     | 0xFFF |
// '--------^-------^---------------^---------------------------------------^-------^
	"dsrl $a0, $t2, 0\n\t"
	"andi $a0, $a0, 0xFFF\n\t"
// START - THE PLACE ON ASM CODE WHERE YOU CHANGE THE SOURCE VALUE TO SOMEONE ELSE
// END   - THE PLACE ON ASM CODE WHERE YOU CHANGE THE SOURCE VALUE TO SOMEONE ELSE
	"andi $a0, $a0, 0xFFF\n\t"			// This masking ensures that field limits are respected after changing the source value
	"dsll $a0, $a0, 0\n\t"				// Align it for DISPLAYx register
// ----------------------------------------------------------------------------------------------------------------------------------------------
	"or $t7, $t7, $a0\n\t"				//DISPLAYx' = (DISPLAYx') OR (DX')



// MAGV' = MAGV
// .--------.-------.---------------.---------------------------------------.-------.
// | Name   | Pos.  | Format        | Contents                              | Mask  |
// |        |       |               |                                       |       |
// |--------+-------+---------------+---------------------------------------+-------+
// | MAGV   | 28:27 | int 0: 2:0    | magnification in vertical direction   | 0x3   |
// '--------^-------^---------------^---------------------------------------^-------^
	"dsrl $a0, $t2, 27\n\t"
	"andi $a0, $a0, 0x3\n\t"
// START - THE PLACE ON ASM CODE WHERE YOU CHANGE THE SOURCE VALUE TO SOMEONE ELSE
//	"dsll $a0, $a0, 1\n\t"
	"addiu $a0, $a0, 1\n\t"
	"dsll $a0, $a0, $a3\n\t"			// Double heigth when at Field Mode...
	"dsrl $k0, $t2, 44\n\t"				// ... or depending on at low res / high res
										// ... for high res (DH>=257), or MAGV' = MAGV + 1 for low res (DH<257)

	"andi $k0, $k0, 0x7FF\n\t"
	"slti $k1, $k0, 257\n\t"
	"bgez $k1, 1f\n\t"
	"nop\n\t"
	"addiu $a0, $a0, 1\n\t"
	"1:\n\t"
// END   - THE PLACE ON ASM CODE WHERE YOU CHANGE THE SOURCE VALUE TO SOMEONE ELSE
	"andi $a0, $a0, 0x3\n\t"			// This masking ensures that field limits are respected after changing the source value
	"dsll $a0, $a0, 27\n\t"				// Align it for DISPLAYx register
// ----------------------------------------------------------------------------------------------------------------------------------------------
	"or $t7, $t7, $a0\n\t"				//DISPLAYx' = (DISPLAYx') OR (MAGV')
// ----------------------------------------------------------------------------------------------------------------------------------------------
// DH' = DH
// .--------.-------.---------------.---------------------------------------.-------.
// | Name   | Pos.  | Format        | Contents                              | Mask  |
// |        |       |               |                                       |       |
// |--------+-------+---------------+---------------------------------------+-------+
// | DH     | 54:44 | int 0:11:0    | display area height - 1 (pixel units) | 0x7FF |
// '--------^-------^---------------^---------------------------------------^-------^
	"dsrl32 $a0, $t2, 12\n\t"
	"andi $a0, $a0, 0x7FF\n\t"
// START - THE PLACE ON ASM CODE WHERE YOU CHANGE THE SOURCE VALUE TO SOMEONE ELSE
// END   - THE PLACE ON ASM CODE WHERE YOU CHANGE THE SOURCE VALUE TO SOMEONE ELSE
	"andi $a0, $a0, 0x7FF\n\t"			// This masking ensures that field limits are respected after changing the source value
	"dsll32 $a0, $a0, 12\n\t"			// Align it for DISPLAYx register
// ----------------------------------------------------------------------------------------------------------------------------------------------
	"or $t7, $t7, $a0\n\t"				//DISPLAYx' = (DISPLAYx') OR (DH')
// ----------------------------------------------------------------------------------------------------------------------------------------------		

// ----------------------------------------------------------------------------------------------------------------------------------------------
// DY' = DY
// .--------.-------.---------------.---------------------------------------.-------.
// | Name   | Pos.  | Format        | Contents                              | Mask  |
// |        |       |               |                                       |       |
// |--------+-------+---------------+---------------------------------------+-------+
// | DY     | 22:12 | int 0:11:0    | y pos in display area (raster units)  | 0x7FF |
// '--------^-------^---------------^---------------------------------------^-------^
	"dsrl $a0, $t2, 11\n\t"
	"andi $a0, $a0, 0x7FF\n\t"
// START - THE PLACE ON ASM CODE WHERE YOU CHANGE THE SOURCE VALUE TO SOMEONE ELSE
// END   - THE PLACE ON ASM CODE WHERE YOU CHANGE THE SOURCE VALUE TO SOMEONE ELSE
	"andi $a0, $a0, 0x7FF\n\t"
	"dsll $a0, $a0, 11\n\t"				// Align it for DISPLAYx register
// ----------------------------------------------------------------------------------------------------------------------------------------------
	"or $t7, $t7, $a0\n\t"				//DISPLAYx' = (DISPLAYx') OR (DY')
// ----------------------------------------------------------------------------------------------------------------------------------------------
